Bowman ended up in the lead group for a short run home after staying out when the front-runners switched from wets back to slicks before the end of Stage 2.
He led by 3.670s when the race went time-certain and thus two laps remained, but a slick-shod Tyler Reddick was hauling in the #48 Chevrolet.
Reddick cut the gap to 1.986s as they took the white flag but his bid for victory was dashed when he glanced the inside wall at Turn 5 in the #45 23XI Racing Toyota.
He finished 2.863s behind Bowman after 58 laps of a scheduled 80, the race not running to distance due to a nearly two-hour red flag period, with Ty Gibbs finishing third in the #54 Joe Gibbs Racing Toyota.
Ironically, Kyle Larson and Shane van Gisbergen were classified second-last and last respectively in the 40-car field, the former crashing on his own after the latter was taken out by Chase Briscoe.
A light shower prior to the start left the track damp and NASCAR gave teams the opportunity to make a free pit stop after the first pace lap without losing track position.
Notably, pole-sitter Larson, fellow front row starter Gibbs, and van Gisbergen were among those to swap from wets to slicks, just as more light rain began.
Just seven continued on slicks and it made for a tricky start, van Gisbergen dropping from fifth on the grid to seventh after sliding off Turn 12 as the field took the green.
He quickly got back ahead of Bubba Wallace (#23 23XI Racing Toyota) and then went down the inside of Michael McDowell (#34 Front Row Motorsports Ford) for fifth at Turn 11, as Gibbs led the race from Reddick.
Van Gisbergen passed Bowman at Turn 7 on Lap 2 and then fired down the inside of Larson (#5 Hendrick Chevrolet) four corners later to run third.
The rain continued in fits and starts as the top four compressed to 1.1s apart on Lap 6, before van Gisbergen put a move on Reddick at Turn 2 on Lap 8 and the #45 Toyota was freight-trained back to sixth.
The leaders caught traffic on Lap 12, with a bunch of cars struggling on stressed wet tyres, and van Gisbergen took the opportunity to squeeze alongside Reddick at Turn 11.
They split either side of Ryan Preece (#41 Stewart-Haas Racing Ford) as they ran up pit straight and the New Zealander took the lead, with Christopher Bell (#20 Toyota) passing his JGR team-mate for second place.
Van Gisbergen briefly cleared out before Bell reeled him in and made the pass for first spot at the end of Lap 15, only for the Supercars champ to get back ahead on Lap 16 at Turn 2.
A Caution was called on Lap 17 when Corey LaJoie looped the #7 Spire Motorsports Chevrolet into the wall between Turns 4 and 5.
That settled the 20-lap opening stage given NASCAR left pit lane closed, with van Gisbergen heading Bell, Gibbs, Briscoe (#14 SHR Ford), and Larson.
By then, the rain was coming down hard and it was a wholesale change to wets in the stage break.
Bell was first off pit lane, from Gibbs, Larson, van Gisbergen, and Bowman, with some nose-to-tail hits at Turn 1 as the train checked up to wait for the air dryer trucks which were passing through.
The aforementioned quintet were second through sixth, however, given an already wet-shod Zane Smith (#71 Spire Chevrolet) had filtered to the front by not stopping.
The restart came on Lap 25 and Gibbs emerged from Turn 1 in the lead, while Wallace spun into the inside wall at Turn 2 after a touch from Bowman.
NASCAR red-flagged the contest due to standing water and sent the dryer trucks back out but the suspension lasted an hour and 43 minutes as a weather system ran through the Windy City.
The Pace Car finally led Gibbs, Bell, Larson, Smith, Reddick, and the rest out of pit lane again, on wet tyres, as a time-certain finish of 20:20 local time/11:20 AEST loomed in just over an hour.
They took the green flag again on Lap 31 and Reddick went past a sliding Smith at Turn 1, before Bell overtook Gibbs for the lead midway through the lap.
Denny Hamlin (#11 JGR Toyota) locked up and punted Ricky Stenhouse Jnr (#47 JTG Daugherty Racing Chevrolet) into the barriers at Turn 6 but they cleared the scene and the race stayed green.
A Caution did come on Lap 34 when Larson ploughed out of third place and into the tyre wall at Turn 6.
The restart occurred on Lap 38 and Bell pulled a one-second lead by the end of Lap 39 before Todd Gilliland (#38 Front Row Ford) and John Hunter Nemechek (#42 Legacy Motor Club Toyota) got by Reddick for third and fourth, respectively.
Austin Dillon (#3 Richard Childress Racing Chevrolet), from 14th, led several into pit lane to swap to slicks on Lap 42.
With the pits about to close for the Lap 45 stage finish, the front-runners responded by stopping next time around for slicks – just as Dillon slid into the barriers at Turn 6.
Joey Hand (#60 RFK Racing Ford) stayed out and won Stage 2 by a 0.131s margin to Bowman, with Bell 13th and Reddick 15th, from Gilliland, Reddick, and Nemechek.
Those who were still on wets stayed out and Hand led the field back to green on Lap 49, with 17 minutes until time-certainty.
The top two gapped Brad Keselowski (#6 RFK Ford) but Hand could not keep Bowman at bay and the Hendrick pilot nipped down the inside at Turn 5 on Lap 51.
He got the pass done just in time for the fifth Caution period, in response to Josh Berry putting the #4 SHR Ford into the barriers at Turn 2.
Bell was ninth under the yellow and Gibbs 12th, from Reddick and Nemechek.
It was another single-file restart with four-and-a-half minutes to go on Lap 54 and Bowman pulled clear while Bell was carving through the field.
However, he tangled with traffic in the form of JGR team-mate Martin Truex Jnr (#19 Toyota) on Lap 55 and was hit by Carson Hocevar (#77 Spire Chevrolet).
Gibbs and Reddick sped past but then the former got hung wide as he tried to round up Keselowski at Turn 3 on Lap 56.
Reddick capitalised there, too, passing both and setting after the top two.
He pushed hard in the final two laps, but just a little too hard when he hit the inside wall at Turn 5 on the final lap and had to settle for second place.
Gibbs finished third, from Hand, McDowell, Stenhouse Jnr, Gilliland, William Byron (#24 Hendrick Chevrolet), Kyle Busch (#8 RCR Chevrolet), and Ryan Blaney (#12 Team Penske Ford).
Nemechek was classified a lap down in 27th after hitting the barriers twice in the run home.
The NASCAR season continues next weekend at Pocono.